﻿Imports System.Data
Imports System.Data.SqlClient
Partial Class Localidades
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = False Then
            CargarDataListPaises()
            CargarDataListProvincias()
            cargarGrillaLocalidades()
        End If
    End Sub

    Sub cargarGrillaLocalidades()

        gvLocalidades.DataSource = LocalidadesDB.GetLocalidadesDeProvincia(ddlPaises.SelectedValue, ddlProvincias.SelectedValue)
        gvLocalidades.DataBind()
    End Sub

    Sub CargarDataListPaises()
        Dim ds As New DataSet
        ds = PaisesDB.GetPaises
        ddlPaises.DataSource = ds.Tables("Paises")
        ddlPaises.DataValueField = "Id_pais"
        ddlPaises.DataTextField = "Pais"
        ddlPaises.DataBind()
        ddlPaises.Items.Insert(0, New ListItem("Todos", "0"))
        ddlPaises.SelectedValue = 1

    End Sub

    Sub CargarDataListProvincias()
        Dim ds As New DataSet
        ds = ProvinciasDB.GetProvinciasDePais(ddlPaises.SelectedValue)
        With ddlProvincias
            .DataSource = ds.Tables("Provincias")
            .DataValueField = "id_provincia"
            .DataTextField = "Provincia"
            .DataBind()
            .Items.Insert(0, New ListItem("Todas", "0"))
            '.SelectedValue = 1
        End With


    End Sub

    Protected Sub gvLocalidades_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvLocalidades.PageIndexChanging
        gvLocalidades.PageIndex = e.NewPageIndex
        cargarGrillaLocalidades()
    End Sub

    Protected Sub gvLocalidades_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvLocalidades.SelectedIndexChanged
        txtIdLocalidad.Text = gvLocalidades.SelectedDataKey.Values(0).ToString()
        txtLocalidad.Text = gvLocalidades.SelectedRow.Cells(1).Text.ToString()
        btnAceptar.Enabled = True

    End Sub
    Protected Sub btnNuevo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        btnNuevo.Enabled = False
        btnAceptar.Enabled = True
        gvLocalidades.Enabled = False
        btnCancelar.Enabled = True
        Limpiar()
    End Sub

    Private Sub Limpiar()
        txtLocalidad.Text = ""
        txtIdLocalidad.Text = ""
    End Sub
    Private Sub BotonesInicial()
        btnNuevo.Enabled = True
        btnAceptar.Enabled = False
        gvLocalidades.Enabled = True
        gvLocalidades.SelectedIndex = -1
    End Sub


    Protected Sub gvPaises_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvLocalidades.SelectedIndexChanged
        txtIdLocalidad.Text = gvLocalidades.SelectedDataKey.Values(0).ToString()
        txtLocalidad.Text = gvLocalidades.SelectedRow.Cells(1).Text.ToString()
        btnAceptar.Enabled = True
        ddlPaises.SelectedValue = gvLocalidades.SelectedDataKey.Values(2).ToString()
        ddlProvincias.SelectedValue = gvLocalidades.SelectedDataKey.Values(1).ToString()
    End Sub

    Protected Sub btnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        Try
            If btnNuevo.Enabled = False Then 'es un nuevo registro
                LocalidadesDB.InsertarLocalidad(txtLocalidad.Text, Integer.Parse(ddlProvincias.SelectedValue))
            Else 'es una actualizacion
                LocalidadesDB.ActualizarLocalidad(Integer.Parse(txtIdLocalidad.Text.ToString()), txtLocalidad.Text.ToString())
            End If
            cargarGrillaLocalidades()
            Limpiar()
            BotonesInicial()
        Catch ex As Exception
            Session("Error") = ex.Message.ToString()
            Session("Pagina") = "Localidades.aspx"
            Server.Transfer("Errores.aspx")
        End Try

    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        txtLocalidad.Text = ""
        txtIdLocalidad.Text = ""
        btnNuevo.Enabled = True
        btnAceptar.Enabled = False
        gvLocalidades.Enabled = True
        gvLocalidades.SelectedIndex = -1
    End Sub

    Protected Sub gvPaises_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gvLocalidades.RowDeleting
        Try
            LocalidadesDB.EliminarLocalidad(Convert.ToInt32(gvLocalidades.DataKeys(e.RowIndex).Value.ToString()))
        Catch ex As Exception
            Session("Error") = ex.Message.ToString
            Session("Pagina") = "Localidades.aspx"
            Server.Transfer("Errores.aspx")
        End Try

        cargarGrillaLocalidades()

    End Sub

    Protected Sub ddlPaises_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPaises.SelectedIndexChanged
        CargarDataListProvincias()
        cargarGrillaLocalidades()
    End Sub

    Protected Sub ddlProvincias_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlProvincias.SelectedIndexChanged
        cargarGrillaLocalidades()
    End Sub
End Class
